// foo.cc 或 foo.cpp
#include <vector>
#include <memory>
#include <cstdio>         // C++ 风格头
#include <poll.h>         // POSIX 头
#include <unistd.h>

#include "EventLoop.h"    // 项目内头
#include "Channel.h"

namespace {
// 仅在本源文件内使用的常量/函数
constexpr int kDefaultTimeoutMs = 10000;

void logDebug(const char* msg) {
  std::printf("[D] %s\n", msg);
}
} // namespace

int main() {
  EventLoop loop;               // 来自项目的类型（接口不变）
  logDebug("starting loop");

  // POSIX 调用依旧在全局命名空间
  int fds[2];
  if (::pipe(fds) != 0) return 1;

  Channel ch(&loop, fds[0]);
  ch.setReadCallback([&] { logDebug("readable"); });
  ch.enableReading();

  loop.loop();

  ::close(fds[0]);
  ::close(fds[1]);
  return 0;
}